home *** CD-ROM | disk | FTP | other *** search
/ Power CD / Power CD ATARI-Rechner Lieben.iso / ALLERLEI / GOBJ_112 / UNITS / OTYPES.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1994-04-14  |  21.3 KB  |  733 lines

  1. {**************************************
  2.  *  O b j e c t G E M   Version 1.12  *
  3.  *  Copyright 1992-94 by Thomas Much  *
  4.  **************************************
  5.  *         Unit  O T Y P E S          *
  6.  **************************************
  7.  *    Softdesign Computer Software    *
  8.  *    Thomas Much, Gerwigstraße 46,   *
  9.  *  76131 Karlsruhe, (0721) 62 28 41  *
  10.  *         Thomas Much @ KA2          *
  11.  *  UK48@ibm3090.rz.uni-karlsruhe.de  *
  12.  **************************************
  13.  *    erstellt am:        13.07.1992  *
  14.  *    letztes Update am:  14.04.1994  *
  15.  **************************************}
  16.  
  17. {
  18.   WICHTIGE ANMERKUNGEN ZUM QUELLTEXT:
  19.  
  20.   ObjectGEM wird ab sofort mit dem _vollständigen_ Quelltext ausgeliefert,
  21.   d.h. jeder kann sich die Unit selbst compilieren, womit die extrem
  22.   lästigen Kompatibilitätsprobleme mit den PP-Releases beseitigt sind.
  23.   ObjectGEM ist und bleibt aber trotzdem SHAREWARE, d.h. wer die Biblio-
  24.   thek regelmäßig benutzt, muß sich REGISTRIEREN lassen (so wie bisher).
  25.   Im Moment gibt es dafür dann "nur" die neueste Version; eine geTEXte
  26.   Doku ist aber in Arbeit, so daß auch ein gedrucktes Handbuch immer
  27.   wahrscheinlicher wird.
  28.  
  29.   Der Quelltext enthält z.Z. noch _keine_ Kommentare; wer sich dennoch die
  30.   Mühe macht, ihn zu lesen, wird feststellen, daß er außerdem noch recht
  31.   "wirr" und teilweise umständlich geschrieben ist, oder daß er evtl. auch
  32.   unnötige Teile enthält. Das liegt daran, daß dieser Quelltext eigentlich
  33.   gar nicht für eine Veröffentlichung gedacht war, aber immer häufiger auf-
  34.   tretende PP-Updates haben mich schier zur Verzweiflung getrieben...
  35.   Das alles sollte aber kein Grund sein, ObjectGEM nicht einzusetzen, denn
  36.   sobald nach "außen" die von mir gewünschte Funktionalität erreicht ist
  37.   (d.h. wenn alle wichtigen Objekte vorhanden sind, z.B. TEditWindow etc.),
  38.   werde ich mich um die "innere" Optimierung kümmern (dazu gehören dann
  39.   auch die Kommentare). Die bisher geschriebenen ObjectGEM-Anwendungen
  40.   können dann natürlich weiterverwendet werden.
  41.  
  42.   Wer beim Durchstöbern des Textes auf vermeintliche Fehler oder verbesse-
  43.   rungswürdige Stellen trifft (von letzterem gibt es sicherlich noch viele),
  44.   kann mir dies gerne mitteilen - ich habe auch ich nichts gegen kostenlos
  45.   zur Verfügung gestellte optimierte Routinen (sofern sich jemand die Mühe
  46.   macht). Wer in anderen Projekten, die nicht in direkter Konkurrenz zu
  47.   ObjectGEM stehen, einzelne Routinen verwenden möchte, wendet sich bitte
  48.   an mich (ein solcher Austausch sollte kein Problem sein).
  49.  
  50.   Wer sich auf nicht dokumentierte "implementation"- oder "private"-Eigen-
  51.   schaften verläßt, darf sich nicht über Inkompatibilitäten zu späteren
  52.   Versionen wundern; wer meint, eine Dokumentationslücke entdeckt zu haben
  53.   (außer dem "Abgrund" des noch fehlenden Handbuchs...), kann mir dies
  54.   gerne mitteilen.
  55.  
  56.   WICHTIG: Wer den Quelltext verändert und dann Probleme beim Compilieren,
  57.   Ausführen o.ä. hat, kann nicht damit rechnen, daß ich den Fehler suche;
  58.   tritt der Fehler allerdings auch mit dem Original-Quelltext auf, würde
  59.   ich mich über eine genaue Fehlerbeschreibung freuen. Veränderte Quell-
  60.   texte dürfen _nicht_ weitergegeben werden, dies wäre ein Verstoß gegen
  61.   das Copyright!
  62.  
  63.   Kleine Info zum Schluß: Als "default tabsize" verwende ich 2. Wer drei
  64.   Punkte ("...") im Quelltext entdeckt, hat eine Stelle gefunden, an der
  65.   ich z.Z. arbeite ;-)
  66.  
  67.   "Möge die OOP mit Euch sein!"
  68. }
  69.  
  70.  
  71. {$IFDEF DEBUG}
  72.     {$B+,D+,G-,I-,L+,N-,P-,Q+,R+,S+,T-,V-,X+,Z+}
  73. {$ELSE}
  74.     {$B+,D-,G-,I-,L-,N-,P-,Q-,R-,S-,T-,V-,X+,Z+}
  75. {$ENDIF}
  76.  
  77. unit OTypes;
  78.  
  79. interface
  80.  
  81. uses
  82.  
  83.     Gem;
  84.  
  85. const
  86.  
  87.     GOVersion             = $0112;
  88.     GODate                = $04141994;
  89.  
  90.     em_OK                 =     0;
  91.     em_OutOfMemory        =    -1;
  92.     em_InvalidWindow      =    -4;
  93.     em_InvalidMainWindow  =    -5;
  94.     em_AccInitFailure     =   -10;
  95.     em_GEMInitFailure     =   -11;
  96.     em_AESNotActive       =   -12;
  97.     em_RscNotFound        =   -13;
  98.     em_WOpenFailure       =   -20;
  99.     em_WCloseFailure      =   -21;
  100.     em_WDestroyFailure    =   -22;
  101.     em_InvalidMenu        =   -30;
  102.     em_InvalidDialog      =   -31;
  103.     em_InvalidToolbar     =   -32;
  104.     em_SpeedoLoadFailure  =   -40;
  105.     em_Terminate          =   -98;
  106.     em_Quit               =   -99;
  107.  
  108.     as_LoadFonts          =     1;
  109.     as_GrowShrink         =     2;
  110.     as_MenuSeparator      =     4;
  111.     as_MoveDials          =     8;
  112.     as_MoveTransparent    =    16 or as_MoveDials;
  113.     as_Rubbox             =    32;
  114.     as_HandleShutdown     =    64;
  115.     as_3DFlags            =   128;
  116.  
  117.     ws_NoWindow           =     1;
  118.     ws_Created            =     2;
  119.     ws_Open               =     3;
  120.  
  121.     ws_ex_Modeless        =     1;
  122.     ws_ex_TryModeless     =     2 or ws_ex_Modeless;
  123.     ws_ex_AppModal        =     4;
  124.     ws_ex_Popup           =     8;
  125.     ws_ex_Center          =    16;
  126.     ws_ex_CenterOnce      =    32 or ws_ex_Center;
  127.     ws_ex_Center2Parent   =    64 or ws_ex_Center;
  128.     ws_ex_MoveDial        =   128;
  129.     ws_ex_MoveTransparent =   256 or ws_ex_MoveDial;
  130.     ws_ex_Disabled        =   512;
  131.  
  132.     cs_ByteAlignClient    =     1;
  133.     cs_ByteAlignWindow    =     2;
  134.     cs_VerAlignClient     =     4;
  135.     cs_VerAlignWindow     =     8;
  136.     cs_FullRedraw         =    16;
  137.     cs_SaveBits           =    32;
  138.     cs_Rubbox             =    64;
  139.     cs_WorkBackground     =   128;
  140.     cs_DblClks            =   256;
  141.     cs_CreateOnAccOpen    =   512;
  142.     cs_CancelOnClose      =  1024;
  143.     cs_AutoCreate         =  2048;
  144.     cs_AutoOpen           =  4096;
  145.     cs_ToolbarOpposite    =  8192;
  146.     cs_HRedraw            =     cs_FullRedraw;
  147.     cs_VRedraw            =     cs_FullRedraw;
  148.  
  149.     tf_GetData            =     0;
  150.     tf_SetData            =     1;
  151.     tf_SizeData           =     2;
  152.  
  153.     wb_Transfer           =     1;
  154.     wb_Lazy               =     2;
  155.  
  156.     cs_CheckBox           =     1;
  157.     cs_AutoCheckBox       =     cs_CheckBox;
  158.     cs_3State             =     2 or cs_CheckBox;
  159.     cs_Auto3State         =     cs_3State;
  160.     cs_RadioButton        =     4;
  161.     cs_AutoRadioButton    =     cs_RadioButton;
  162.     cs_PushButton         =     8;
  163.     cs_GroupBox           =    16;
  164.     cs_Static             =    32;
  165.     cs_Edit               =    64;
  166.     cs_ScrollBar          =   128;
  167.  
  168.     es_ASCIIOnly          =  2048;
  169.  
  170.     bs_DefPushButton      =  2048;
  171.  
  172.     sbs_Horz              =  2048;
  173.     sbs_Vert              =  4096;
  174.  
  175.     sts_Fill              =  2048;
  176.  
  177.     bf_Unchecked          =     1;
  178.     bf_Checked            =     2;
  179.     bf_Grayed             =     3;
  180.     bf_Enabled            =     4;
  181.     bf_Disabled           =     5;
  182.  
  183.     id_No                 =    -1;
  184.     id_OK                 =     0;
  185.     id_Cancel             =     1;
  186.     id_Help               =     2;
  187.     id_Undo               =     3;
  188.     id_Esc                =     4;
  189.     id_NoExit             =    42;
  190.  
  191.     coIndexError          =    -1;
  192.     coOverflow            =    -2;
  193.  
  194.     MaxCollectionSize     = maxlongint div sizeof(pointer);
  195.  
  196.     vsOK                  =     0;
  197.     vsSyntax              =     1;
  198.  
  199.     voFill                = $0001;
  200.     voNotEmpty            = $0002;
  201.     voOnAppend            = $0004;
  202.     voOnEdit              = $0008;
  203.     voReserved            = $00f0;
  204.  
  205.  
  206.     KsCAPS                = $0010;
  207.     KsALT                 = $0008;
  208.     KsCONTROL             = $0004;
  209.     KsSHIFT               = $0003;
  210.     KsLSHIFT              = $0002;
  211.     KsRSHIFT              = $0001;
  212.     KsNORMAL              = $0000;
  213.  
  214.     KbSCAN                = $8000;
  215.     KbNUM                 = $4000;
  216.     KbALT                 = $0800;
  217.     KbCONTROL             = $0400;
  218.     KbLSHIFT              = $0200;
  219.     KbRSHIFT              = $0100;
  220.     KbISO                 = $0037;
  221.  
  222.     KbF1                  = $003b;
  223.     KbF2                  = $003c;
  224.     KbF3                  = $003d;
  225.     KbF4                  = $003e;
  226.     KbF5                  = $003f;
  227.     KbF6                  = $0040;
  228.     KbF7                  = $0041;
  229.     KbF8                  = $0042;
  230.     KbF9                  = $0043;
  231.     KbF10                 = $0044;
  232.  
  233.     KbF11                 = $0054;
  234.     KbF12                 = $0055;
  235.     KbF13                 = $0056;
  236.     KbF14                 = $0057;
  237.     KbF15                 = $0058;
  238.     KbF16                 = $0059;
  239.     KbF17                 = $005a;
  240.     KbF18                 = $005b;
  241.     KbF19                 = $005c;
  242.     KbF20                 = $005d;
  243.  
  244.     KbAlt1                = $0078;
  245.     KbAlt2                = $0079;
  246.     KbAlt3                = $007a;
  247.     KbAlt4                = $007b;
  248.     KbAlt5                = $007c;
  249.     KbAlt6                = $007d;
  250.     KbAlt7                = $007e;
  251.     KbAlt8                = $007f;
  252.     KbAlt9                = $0080;
  253.     KbAlt0                = $0081;
  254.  
  255.     KbUNDO                = $0061;
  256.     KbHELP                = $0062;
  257.     KbINSERT              = $0052;
  258.     KbHOME                = $0047;
  259.     KbUP                  = $0048;
  260.     KbDOWN                = $0050;
  261.     KbLEFT                = $004b;
  262.     KbRIGHT               = $004d;
  263.  
  264.  
  265.     USA                   =     0;
  266.     FRG                   =     1;
  267.     FRA                   =     2;
  268.     UK                    =     3;
  269.     SPA                   =     4;
  270.     ITA                   =     5;
  271.     SWE                   =     6;
  272.     SWF                   =     7;
  273.     SWG                   =     8;
  274.     TUR                   =     9;
  275.     FIN                   =    10;
  276.     NOR                   =    11;
  277.     DEN                   =    12;
  278.     SAU                   =    13;
  279.     HOL                   =    14;
  280.     CZE                   =    15;
  281.     HUN                   =    16;
  282.  
  283.     SIGNULL               =     0;
  284.     SIGHUP                =     1;
  285.     SIGINT                =     2;
  286.     SIGQUIT               =     3;
  287.     SIGILL                =     4;
  288.     SIGTRAP               =     5;
  289.     SIGABRT               =     6;
  290.     SIGPRIV               =     7;
  291.     SIGFPE                =     8;
  292.     SIGKILL               =     9;
  293.     SIGBUS                =    10;
  294.     SIGSEGV               =    11;
  295.     SIGSYS                =    12;
  296.     SIGPIPE               =    13;
  297.     SIGALRM               =    14;
  298.     SIGTERM               =    15;
  299.     SIGSTOP               =    17;
  300.     SIGTSTP               =    18;
  301.     SIGCONT               =    19;
  302.     SIGCHLD               =    20;
  303.     SIGTTIN               =    21;
  304.     SIGTTOU               =    22;
  305.     SIGXCPU               =    24;
  306.     SIGWINCH              =    28;
  307.     SIGUSR1               =    29;
  308.     SIGUSR2               =    30;
  309.     SIG_DFL               = pointer(0);
  310.     SIG_IGN               = pointer(1);
  311.  
  312.     NUL                   =     0;
  313.     EOS                   =     0;
  314.     SOH                   =     1;
  315.     STX                   =     2;
  316.     ETX                   =     3;
  317.     EOT                   =     4;
  318.     ENQ                   =     5;
  319.     ACK                   =     6;
  320.     BEL                   =     7;
  321.     BS                    =     8;
  322.     HT                    =     9;
  323.     LF                    =    10;
  324.     VT                    =    11;
  325.     FF                    =    12;
  326.     CR                    =    13;
  327.     SO                    =    14;
  328.     SI                    =    15;
  329.     DLE                   =    16;
  330.     DC1                   =    17;
  331.     DC2                   =    18;
  332.     DC3                   =    19;
  333.     DC4                   =    20;
  334.     NAK                   =    21;
  335.     SYN                   =    22;
  336.     ETB                   =    23;
  337.     CAN                   =    24;
  338.     EM                    =    25;
  339.     SUB                   =    26;
  340.     ESC                   =    27;
  341.     FS                    =    28;
  342.     GS                    =    29;
  343.     RS                    =    30;
  344.     US                    =    31;
  345.     SP                    =    32;
  346.     DEL                   =   127;
  347.  
  348.  
  349.     DESK                  =     0;
  350.     CLIP_ON               =     1;
  351.     CLIP_OFF              =     0;
  352.     PER_ON                =     1;
  353.     PER_OFF               =     0;
  354.     ME_DRAW               =     1;
  355.     ME_ERASE              =     0;
  356.     ME_INQUIRE            =    -1;
  357.     ME_CHECK              =     1;
  358.     ME_UNCHECK            =     0;
  359.     ME_DISABLE            =     0;
  360.     ME_ENABLE             =     1;
  361.     ME_NORMAL             =     1;
  362.     ME_INVERT             =     0;
  363.     FF_STAND              =     1;
  364.     FF_DEVSPEC            =     0;
  365.     POP_LEFTOP            =     0;
  366.     POP_CENTER            =     1;
  367.     AT_TIMER              =     0;
  368.     AT_BUTTON             =     1;
  369.     AT_MOUSE              =     2;
  370.     AT_KEYBD              =     3;
  371.     NO_ICON               =     0;
  372.     NOTE                  =     1;
  373.     WAIT                  =     2;
  374.     STOP                  =     3;
  375.     NDC                   =     0;
  376.     RC                    =     2;
  377.  
  378.     PROTO_XACC            =     1;
  379.     PROTO_AV              =     2;
  380.  
  381.     HSLIDER               = LFARROW or RTARROW or HSLIDE;
  382.     VSLIDER               = UPARROW or DNARROW or VSLIDE;
  383.     SLIDER                = HSLIDER or VSLIDER;
  384.  
  385.  
  386.     WF_OWNER              =    20;  { Achtung: Die Konstanten in diesem Block }
  387.     WF_BEVENT             =    24;  {          sollten irgendwann mal in der  }
  388.     WF_BOTTOM             =    25;  {          Unit GEM zu finden sein...     }
  389.     AP_DRAGDROP           =    63;
  390.     CT_KEY                =    53;
  391.     RESCH_COMPLETED       =    61;
  392.     SH_WDRAW              =    72;
  393.     CH_EXIT               =    90;
  394.     DD_OK                 =     0;
  395.     DD_NAK                =     1;
  396.     DD_EXT                =     2;
  397.     DD_LEN                =     3;
  398.     DD_TRASH              =     4;
  399.     DD_PRINTER            =     5;
  400.     DD_CLIPBOARD          =     6;
  401.     DD_TIMEOUT            =  4000;
  402.     DD_NUMEXTS            =     8;
  403.     DD_EXTSIZE            =    32;
  404.     DD_NAMEMAX            =   128;
  405.     DD_HDRMAX             =     8+DD_NAMEMAX;
  406.     FL3DMASK              = $0600;
  407.     FL3DNONE              = $0000;
  408.     FL3DIND               = $0200;
  409.     FL3DBAK               = $0400;
  410.     FL3DACT               = $0600;
  411.     LK3DIND               =     1;
  412.     LK3DAKT               =     2;
  413.     INDBUTCOL             =     3;
  414.     ACTBUTCOL             =     4;
  415.     BACKGRCOL             =     5;
  416.     AD3DVAL               =     6;
  417.     WF_ICONIFY            =    26;
  418.     WF_UNICONIFY          =    27;
  419.     WF_UNICONIFYXYWH      =    28;
  420.     WF_TOOLBAR            =    30;
  421.     WF_FTOOLBAR           =    31;
  422.     WF_NTOOLBAR           =    32;
  423.     WM_BOTTOMED           =    33;
  424.     WM_ICONIFY            =    34;
  425.     WM_UNICONIFY          =    35;
  426.     WM_ALLICONIFY         =    36;
  427.     WM_TOOLBAR            =    37;
  428.     SMALLER               = $4000;
  429.     GDOS_PROP             =     0;
  430.     GDOS_MONO             =     1;
  431.     GDOS_BITM             =     2;
  432.     M_SAVE                =   258;
  433.     M_LAST                =   259;
  434.     M_RESTORE             =   260;
  435.  
  436.  
  437.     IDC_ARROW             =     0;
  438.     IDC_IBEAM             =     1;
  439.     IDC_CROSS             =     5;
  440.     IDC_WAIT              =   100;
  441.     IDC_LOAD              =   101;
  442.     IDC_HELP              =   102;
  443.     IDC_PENCIL            =   103;
  444.     IDC_RUBBER            =   104;
  445.     IDC_SCISSORS          =   105;
  446.     IDC_PASTE             =   106;
  447.     IDC_SLICE1            =   107;
  448.     IDC_SLICE2            =   108;
  449.     IDC_SLICE3            =   109;
  450.     IDC_SLICE4            =   110;
  451.     HOURGLASS             =   IDC_WAIT;
  452.  
  453.     ACC_ID                =  $400;
  454.     ACC_OPEN              =  $401;
  455.     ACC_CLOSE             =  $402;
  456.     ACC_ACC               =  $403;
  457.     ACC_EXIT              =  $404;
  458.     ACC_ACK               =  $500;
  459.     ACC_TEXT              =  $501;
  460.     ACC_KEY               =  $502;
  461.     ACC_META              =  $503;
  462.     ACC_IMG               =  $504;
  463.     ACC_SPECIAL           =  $800;
  464.  
  465.     AV_PROTOKOLL          = $4700;
  466.     VA_PROTOSTATUS        = $4701;
  467.     AV_GETSTATUS          = $4703;
  468.     AV_STATUS             = $4704;
  469.     VA_SETSTATUS          = $4705;
  470.     AV_SENDKEY            = $4710;
  471.     VA_START              = $4711;
  472.     AV_ASKFILEFONT        = $4712;
  473.     VA_FILEFONT           = $4713;
  474.     AV_ASKCONFONT         = $4714;
  475.     VA_CONFONT            = $4715;
  476.     AV_ASKOBJECT          = $4716;
  477.     VA_OBJECT             = $4717;
  478.     AV_OPENCONSOLE        = $4718;
  479.     VA_CONSOLEOPEN        = $4719;
  480.     AV_OPENWIND           = $4720;
  481.     VA_WINDOPEN           = $4721;
  482.     AV_STARTPROG          = $4722;
  483.     VA_PROGSTART          = $4723;
  484.     AV_ACCWINDOPEN        = $4724;
  485.     VA_DRAGACCWIND        = $4725;
  486.     AV_ACCWINDCLOSED      = $4726;
  487.     AV_COPY_DRAGGED       = $4728;
  488.     VA_COPY_COMPLETE      = $4729;
  489.     AV_PATH_UPDATE        = $4730;
  490.     AV_WHAT_IZIT          = $4732;
  491.     VA_THAT_IZIT          = $4733;
  492.     AV_DRAG_ON_WINDOW     = $4734;
  493.     AV_EXIT               = $4736;
  494.  
  495.     VA_OB_UNKNOWN         =     0;
  496.     VA_OB_TRASHCAN        =     1;
  497.     VA_OB_SHREDDER        =     2;
  498.     VA_OB_CLIPBOARD       =     3;
  499.     VA_OB_FILE            =     4;
  500.     VA_OB_FOLDER          =     5;
  501.     VA_OB_DRIVE           =     6;
  502.     VA_OB_WINDOW          =     7;
  503.  
  504.     CB_UPDATE             = $1234;
  505.  
  506.     CBT_INDEF             = $0000;
  507.     CBT_DBASE             = $0001;
  508.     CBT_TEXT              = $0002;
  509.     CBT_VECTOR            = $0004;
  510.     CBT_RASTER            = $0008;
  511.     CBT_SHEET             = $0010;
  512.     CBT_SOUND             = $0020;
  513.  
  514.     GO_PRIVATE            = $1235;
  515.  
  516.     GOP_TOOLBAR           =     1;
  517.  
  518.     KOBOLD_JOB            = $2f10;
  519.     KOBOLD_JOB_NO_WINDOW  = $2f11;
  520.     KOBOLD_ANSWER         = $2f12;
  521.     KOBOLD_CONFIG         = $2f13;
  522.     KOBOLD_FIRST_SLCT     = $2f14;
  523.     KOBOLD_NEXT_SLCT      = $2f15;
  524.     KOBOLD_CLOSE          = $2f16;
  525.     KOBOLD_FREE_DRIVES    = $2f17;
  526.  
  527.     HexArray: array [0..15] of char =
  528.                             ('0','1','2','3','4','5','6','7',
  529.                                 '8','9','a','b','c','d','e','f');
  530.  
  531. type
  532.  
  533.     THandle               = longint;
  534.     HWnd                  = THandle;
  535.     HCursor               = THandle;
  536.     HBrush                = THandle;
  537.     Bool                  = word;
  538.  
  539.     PStr                  = PChar;
  540.     PString               = ^string;
  541.     PBool                 = ^Bool;
  542.     PByte                 = ^byte;
  543.     PWord                 = ^word;
  544.     PShort                = ^shortint;
  545.     PInteger              = ^integer;
  546.     PLongint              = ^longint;
  547.     PBoolean              = ^boolean;
  548.     PPointer              = ^pointer;
  549.     PTree                 = AESTreePtr;
  550.     PObj                  = AESOBJECTPtr;
  551.  
  552.     PPipearray            = ^Pipearray;
  553.     Pipearray             = ARRAY_8;
  554.  
  555.     PGRECT                = ^GRECT;
  556.     GRECT                 = record
  557.         case integer of
  558.             0: (g_x,g_y,g_w,g_h    : integer);
  559.             1: (X,Y,W,H,X1,Y1,X2,Y2: integer);
  560.             2: (A1,A2              : ARRAY_4)
  561.     end;
  562.  
  563.     PCookieID             = ^TCookieID;
  564.     TCookieID             = array [0..3] of char;
  565.  
  566.     PCookie               = ^TCookie;
  567.     TCookie               = record
  568.         ID:  TCookieID;
  569.         Val: longint
  570.     end;
  571.  
  572.     PMetaInfo             = ^TMetaInfo;
  573.     TMetaInfo             = record
  574.         Version: string;
  575.         Drives : longint
  576.     end;
  577.  
  578.     PItemList             = ^TItemList;
  579.     TItemList             = array [0..MaxCollectionSize-1] of pointer;
  580.  
  581.     PIterationProc        = ^IterationProc;
  582.     IterationProc         = procedure(p: pointer);
  583.  
  584.     PIterationFunc        = ^IterationFunc;
  585.     IterationFunc         = function(p: pointer): boolean;
  586.  
  587.     PXBRA                 = ^XBRA;
  588.     XBRA                  = record
  589.         xb_magic,
  590.         xb_id    : array [0..3] of char;
  591.         xb_oldvec: pointer
  592.     end;
  593.  
  594.     PINFOXSSI             = ^INFOXSSI;
  595.     INFOXSSI              = record
  596.         id       : longint;
  597.         version  : word;
  598.         save_stat,
  599.         prg_stat : integer;
  600.         vec_stat : longint
  601.     end;
  602.  
  603.     PAPPLRECORD           = ^APPLRECORD;
  604.     APPLRECORD            = record
  605.         Typ: longint;
  606.         What: record
  607.         case boolean of
  608.             false: (Long: longint);
  609.             true:  (Hi,Lo: word)
  610.         end
  611.     end;
  612.  
  613.     PWordRec              = ^WordRec;
  614.     WordRec               = record
  615.         Hi,Lo: byte
  616.     end;
  617.  
  618.     PLongRec              = ^LongRec;
  619.     LongRec               = record
  620.         Hi,Lo: word
  621.     end;
  622.  
  623.     PWndClass             = ^TWndClass;
  624.     TWndClass             = record
  625.         Style        : word;
  626.         hCursor      : HCursor;
  627.         hbrBackground: HBrush;
  628.         MenuTree,
  629.         ToolbarTree  : PTree;
  630.         lpszClassName: PString
  631.     end;
  632.  
  633.     PPaintStruct          = ^TPaintStruct;
  634.     TPaintStruct          = record
  635.         fErase : boolean;
  636.         feColor: HBrush;
  637.         rcPaint: GRECT
  638.     end;
  639.  
  640.     PScrollBarTransferRec = ^TScrollBarTransferRec;
  641.     TScrollBarTransferRec = record
  642.         LowValue,
  643.         HighValue,
  644.         Position : longint
  645.     end;
  646.  
  647.     PWindowAttr           = ^TWindowAttr;
  648.     TWindowAttr           = record
  649.         Title,
  650.         SubTitle : PString;
  651.         RBox     : GRECT;
  652.         Handle   : HWnd;
  653.         gemHandle,
  654.         Status,
  655.         Style    : integer;
  656.         ExStyle  : longint
  657.     end;
  658.  
  659.     PGEMAttr              = ^TGEMAttr;
  660.     TGEMAttr              = record
  661.         EventMask,
  662.         Instance   : integer;
  663.         Style      : longint;
  664.         Country    : word;
  665.         rpTail,
  666.         rpCmd      : PString;
  667.         sysFonts,
  668.         addFonts,
  669.         charSWidth,
  670.         charSHeight,
  671.         boxSWidth,
  672.         boxSHeight,
  673.         MaxPX,
  674.         MaxPY,
  675.         PixW,
  676.         PixH,
  677.         Colors,
  678.         MaxColors,
  679.         Planes     : integer
  680.     end;
  681.  
  682.     PXAccAttr             = ^TXAccAttr;
  683.     TXAccAttr             = record
  684.         Version,
  685.         MsgGroups,
  686.         Protocol   : byte;
  687.         AppTypeMR  : string[2];
  688.         AppTypeHR,
  689.         ExtFeatures,
  690.         GenericName,
  691.         Name       : PString;
  692.         apID,
  693.         menuID     : integer;
  694.         AVSrvMsg,
  695.         AVAccMsg   : word;
  696.         pXDSC      : PChar
  697.     end;
  698.  
  699.     PEventData            = ^TEventData;
  700.     TEventData            = record
  701.         Pipe  : Pipearray;
  702.         mX,
  703.         mY,
  704.         BStat,
  705.         KStat,
  706.         Key,
  707.         Clicks: integer
  708.     end;
  709.  
  710.     PRsFile               = ^TRsFile;
  711.     TRsFile               = record
  712.         case boolean of
  713.             false: (rsh: RSHDR);
  714.             true:  (rsd: array [0..65535] of byte)
  715.     end;
  716.  
  717.     PCharSet              = ^TCharSet;
  718.     TCharSet              = set of char;
  719.  
  720.     PByteArray            = ^TByteArray;
  721.     TByteArray            = array [0..maxlongint] of byte;
  722.  
  723.     PWordArray            = ^TWordArray;
  724.     TWordArray            = array [0..1073741822] of word;
  725.  
  726.     PPicResult            = ^TPicResult;
  727.     TPicResult            = (prComplete, prIncomplete, prEmpty, prError,
  728.                                                                 prSyntax, prAmbiguous, prIncompNoFill);
  729.  
  730.  
  731. implementation
  732.  
  733. end.